package com.vhall.component.entity.livecolumn.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.vhall.component.entity.subject.enums.StatusEnum;
import com.vhall.component.framework.common.annotation.ParamName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 直播栏目表
 * </p>
 *
 * @author wangxing
 * @since 2023-08-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("live_column")
public class LiveColumnEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 操作内容
     */
    private String name;

    /**
     * 栏目图标图片url
     */
    @JsonProperty("column_image_url")
    @ParamName("column_image_url")
    private String columnImageUrl;

    /**
     * 栏目归属部门code
     */
    private String orgCode;

    /**
     * 栏目归属部门名称
     */
    @JsonProperty("org_name")
    @ParamName("org_name")
    private String orgName;

    /**
     * 精品等级
     * <p>
     * HEADQUARTERS_BOUTIQUE(1, "总部精品"),
     * HEADQUARTERS_ORDINARY(2, "总部普通"),
     * BRANCH_BOUTIQUE(3, "分支精品"),
     * BRANCH_NORMAL(4, "分支普通"),
     */
    private Integer level;

    /**
     * 设置精品栏目的时间
     */
    @TableField("level_time")
    private LocalDateTime levelTime;

    /**
     * 运营等级
     * NORMAL(1, "正常运营"),
     * STANDARDS(2, "精品达标"),
     * EARLY_WARNING(3, "降级预警"),
     * REDUCE_TO_A_LOWER_RANK(4, "触发降级"),
     */
    @TableField("operational_level")
    private Integer operationalLevel;

    /**
     * 降级预警时间
     */
    @TableField("early_warning_at")
    private LocalDateTime earlyWarningAt;

    /**
     * 栏目简介
     */
    @TableField("`desc`")
    private String desc;

    /**
     * 审核状态,0|待审核,-1|审核驳回,1|审核通过,9|待送审
     */
    @TableField("audit_status")
    private Integer auditStatus;
    /**
     * 审核描述
     */
    @TableField("audit_note")
    private String auditNote;

    /**
     * 栏目的审核时间
     */
    @TableField("audit_at")
    private LocalDateTime auditAt;

    /**
     * 创建人 id
     */
    private Integer createBy;

    /**
     * 更新人 id
     */
    private Integer updateBy;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;

    private LocalDateTime deletedAt;

    /**
     * 置顶标记
     * 0 关
     * 1 开
     * <p>
     * {@link StatusEnum}
     */
    @TableField("top_status")
    private Integer topStatus;

    /**
     * 置顶时间
     */
    @TableField("top_status_at")
    private LocalDateTime topStatusAt;

    /**
     * 栏目下最新直播间审核通过时间
     */
    @TableField("room_audit_at")
    private LocalDateTime roomAuditAt;




    /**
     * 近一个月直播次数
     */
    @TableField("recent_month_live_count")
    private Integer recentMonthLiveCount;

    /**
     * 总共直播次数
     */
    @TableField("total_live_count")
    private Integer totalLiveCount;

    /**
     * 栏目被关注人数
     */
    @TableField("column_follows_count")
    private Integer columnFollowsCount;

    /**
     * 近一个月视频观看人数
     */
    @TableField("recent_month_views_count")
    private Integer recentMonthViewsCount;

    /**
     * 近一个月视频观看次数
     */
    @TableField("recent_month_views_frequency")
    private Integer recentMonthViewsFrequency;


}
